X window

X window est le système graphique le plus utilisé sous Linux.

Introduction

X-Window (souvent appelé "X11" ou simplement "X") est le système le plus courant pour la gestion de l'interface graphique sous Linux. Ce système graphique a été commencé en 1984 et ne cesse de se perfectionner depuis.

Dès l'origine un élément clé de la puissance de X-Window est son architecture client serveur qui permet de déporter l'affichage sur le réseau indépendamment du système d'exploitation. La communication est assuré via le protocole X Window, qui permet à l'application de communiquer avec le système graphique.

Client-Serveur

Un système d'affichage X Window est composé de deux partie: un client et un serveur.

L'interprétation des fonctionnalités du client et du serveur est importants, certains pense à tord que le système fonctionne dans l'autre sens. Le serveur est la partie de X Window qui permet permet l'affichage et gère l'interfaçage avec l'utilisateur. Le client est n'importe quelle application graphique qui doit être affiché comme par exemple un processus de Mozilla Firefox.

Que le système soit utilisé sur un seul ordinateur ou sur un réseau la communication par le protocole X window est utilisé.

AJOUTER IMAGE D'AFFICHAGE LOCAL ET DÉPORTÉ

X Window en local

Le protocole X Window fonctionne de la même façon qu'il soit utilisé sur un réseau ou sur le même ordinateur. Sur la plupart des stations Linux, la communication se fait via des socket unix plutôt que via les interfaces réseau, de cette façon les latences sont minimale.

X Window sur TCP/IP

Lorsque l'affichage est déporté sur le réseau, le protocole X Window utilise généralement TCP/IP. La station voulant profiter de l'affichage à distance ouvre un port (en général le port 6000), et le client X peut s'y connecter. Le protocole n'étant pas sûr (sans chiffrage), il est exceptionnel d'ouvrir un serveur directement sur TCP, en général, la connexion se fait via openSSH qui peut transmettre le protocole X dans un tunnel chiffré.

Le serveur X permet une gestion minimaliste de la sécurité via xhost, la commande xhost permet de restreindre l'accès au serveur graphique à certains hôtes sur le réseau et/ou à certains utilisateur. D'autres mécanisme que xhost doivent en général être utilisé pour assurer un niveau de sécurité suffisant.

Souvenez vous que le serveur est la station qui à l'écran, les clients X peuvent venir de station sans interface graphique, ce qui permet par exemple de configurer une série de serveur qui n'ont pas de carte graphique.

Serveur X

Le serveur X est la partie permettant d'accéder au matériel d'affichage. Il fournit aux clients X la possibilité de s'afficher sur l'écran et de recevoir les informations sur les interactions de l'utilisateur (clavier, souris, etc).

Il existe deux serveur X largement répandu XFree86 et X.org, le second étant une "nouvelle version" du premier. Les configurations des serveurs sont pratiquement identique et les seuls différences à retenir pour la configuration sont les noms des fichiers de configuration. Le serveur XFree86 tend à être remplacé par X.org mais la connaissance des différences avec XFree86 permet de travailler sur d'anciens systèmes.

Les serveurs X ont une place à part dans l'arborescence de Linux, classiquement on retrouve les fichiers de configuration dans le repertoire /etc/X11 mais X est le seul système à posséder sa propre arborescence dans /usr : /usr/X11R6. Le contenu de /usr/X11R6 varie énormément d'une distribution Linux à une autre selon que la politique est d'intégrer X11 au reste du système ou à le laisser à part, cela n'est généralement pas un problème pour l'administrateur car l'information dont il a besoin se trouve dans /etc/X11 ainsi que dans ses sous répertoire.

Le fichier de configuration le plus important du système X est le fichier de configuration du serveur qui se trouve dans /etc/xorg.conf(xfree86.conf pour XFree86). Ce fichier reprend tout le détail de la configuration permettant au serveur d'utiliser le matériel (carte vidéo, écran, clavier, souris, etc) et les paramètres (font, modules optionels, etc). Le fichier xorg.conf est divisé en sections commençant par le mot clef Section et se finissant par EndSection, par exemple pour mon clavier :

Section "InputDevice"
        Identifier      "Generic Keyboard"
        Driver          "kbd"
        Option          "CoreKeyboard"
        Option          "XkbRules"      "xorg"
        Option          "XkbModel"      "pc105"
        Option          "XkbLayout"     "fr"
        Option          "XkbVariant"    "latin9"
EndSection

Pour chaque chipset de carte graphique, le serveur X doit charger le module approprié qui permet de prendre en charge la carte graphique. Les modules sont généralement stockés dans /usr/lib/xorg/modules/drivers. Certains constructeurs fournissent des modules fermés pour leur carte graphique, ces modules posent de sérieux problèmes dans tout le système et leur utilisation dans une environnement de production doit être murement réfléchie.

Le client X Window

Un client X Window est une application quelconque qui utilise X Window pour se dessiner à l'écran. Le serveur permet à de nombreuses applications d'apparaitre simultanément à l'écran et c'est généralement le cas car même le gestionnaire de fenêtre est un client X comme un autre.

Pour se connecter à un serveur, le client X regarde l'adresse du serveur dans la variable d'environnement DISPLAY.

Références

Objectifs liés